package com.haohan.jingyuan.customer.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.haohan.jingyuan.customer.entity.CustomerIncomeType;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 客户收入类型Mapper接口
 * 
 * @ClassName CustomerIncomeTypeMapper
 * @Description 客户收入类型数据访问层
 * @Author hexijun
 * @Time 2025/01/19 17:00
 * @Version 1.0
 */
@Mapper
public interface CustomerIncomeTypeMapper extends BaseMapper<CustomerIncomeType> {

    /**
     * 根据收入类型ID查询收入类型信息
     * 
     * @param id 收入类型ID
     * @return 收入类型信息
     */
    CustomerIncomeType findById(@Param("id") Long id);

    /**
     * 根据类型编码查询收入类型信息
     * 
     * @param type 类型编码
     * @return 收入类型信息
     */
    CustomerIncomeType findByType(@Param("type") String type);

    /**
     * 查询所有收入类型列表（按创建时间倒序）
     * 
     * @return 收入类型列表
     */
    List<CustomerIncomeType> selectAll();

    /**
     * 统计指定类型编码的收入类型数量
     * 
     * @param type 类型编码
     * @return 数量
     */
    int countByType(@Param("type") String type);
}
